/* autor Konjkov.VV@gmail.ru */

#include <stdio.h>
#include <string.h>

#include "syncconf.h"
#include "syncctl.h"

SQLHENV  env;
SQLHDBC  dbc;

int main(int argc, char *argv[])
{
    struct syncconf conf;
    syncconf(&conf);
    printf("%s %s %s %i %i %s %i\n", conf.schemaname, conf.nodename, conf.source, conf.archiveinbox, conf.archiveoutbox, conf.archivestructure, conf.loglevel);
    syncctl_connect(conf.source);
           if (argc==3 && strcmp(argv[1],"system")==0) {
             if (strcmp(argv[2],"install")==0)		{system_install();}
        else if (strcmp(argv[2],"uninstall")==0)	{system_uninstall();}
        else if (strcmp(argv[2],"update")==0)		{system_update();}
        else if (strcmp(argv[2],"status")==0)		{system_status();}
    } else if (argc>=3 && strcmp(argv[1],"node")==0) {
             if (strcmp(argv[2],"add")==0)		{node_add(argv[3]);}
        else if (strcmp(argv[2],"remove")==0)		{node_remove(argv[3]);}
        else if (strcmp(argv[2],"reset")==0)		{node_reset(argv[3]);}
        else if (strcmp(argv[2],"list")==0)		{node_list();}
    } else if (argc==4 && strcmp(argv[1],"table")==0) {
             if (strcmp(argv[2],"add")==0)		{table_add(argv[3]);}
        else if (strcmp(argv[2],"update")==0)		{table_update(argv[3]);}
        else if (strcmp(argv[2],"remove")==0)		{table_remove(argv[3]);}
        else if (strcmp(argv[2],"dwatch-on")==0)	{table_dwatch_on(argv[3]);}
        else if (strcmp(argv[2],"dwatch-off")==0)	{table_dwatch_off(argv[3]);}
    } else if (argc==5 && strcmp(argv[1],"data")==0) {
             if (strcmp(argv[2],"prepare")==0)		{data_prepare(argv[4]);}
        else if (strcmp(argv[2],"update")==0)		{data_update(argv[4]);}
    } else if (argc>=6 && strcmp(argv[1],"prepared")==0) {
             if (strcmp(argv[2],"set")==0)		{prepared_set(argv[5], atoi(argv[3]));}
        else if (strcmp(argv[2],"get")==0)		{prepared_get(argv[4]);}
    } else if (argc>=6 && strcmp(argv[1],"updated")==0) {
             if (strcmp(argv[2],"set")==0)		{updated_set(argv[5], atoi(argv[3]));}
        else if (strcmp(argv[2],"get")==0)		{updated_get(argv[4]);}
    } else {
        printf(USAGE);
    }
    syncctl_disconnect();
    return 0;
}

